package ArrayList.project;

import java.util.ArrayList;
import java.util.ListIterator;

/*
    Arraylist实现类的使用：
    特点：数组存储，查找遍历速度快，增删慢

 */
public class PracticeMain {
    public static void main(String[] args) {
        //1.创建集合：
        ArrayList arrayList = new ArrayList();
        //2.添加元素
        Student student1 = new Student("张三",22);
        Student student2 = new Student("李四",23);
        Student student3 = new Student("王五",24);
        Student student4 = new Student("张三",22);
        arrayList.add(student1);
        arrayList.add(student2);
        arrayList.add(student3);
        arrayList.add(student4);
        System.out.println(arrayList.size());
        System.out.println(arrayList.toString());

        //3.删除元素
        //arrayList.remove(0);//下标删除
        /*
            因为新创建了对象，所以不会删除原来的对象，但若想要就以给的姓名，年龄一样来确定就是一个人，
            从而去删除。remove方法是通过equals方法来进行比较的，所以想要改变比较内容，需要重写equals。
         */
        arrayList.remove(new Student("张三",22));
        System.out.println(arrayList.size());

        //4.遍历集合:可使用迭代器Iterator,也可以使用列表迭代器：ListIterator
        ListIterator listIterator = arrayList.listIterator();
        while (listIterator.hasNext()){
            Student s = (Student) listIterator.next();
            System.out.println(s);
        }

        //5.判断
        System.out.println(arrayList.contains(new Student("李四",23)));//因为equals以改变

        //6.查找

    }
}
